home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / nio / DirectFloatBufferS.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.4 KB  |  196 lines

  1. package java.nio;
  2.  
  3. import sun.misc.Cleaner;
  4. import sun.misc.Unsafe;
  5. import sun.nio.ch.DirectBuffer;
  6.  
  7. class DirectFloatBufferS extends FloatBuffer implements DirectBuffer {
  8.    protected static final Unsafe unsafe = Bits.unsafe();
  9.    protected static final boolean unaligned = Bits.unaligned();
  10.    protected Object viewedBuffer = null;
  11.  
  12.    public Object viewedBuffer() {
  13.       return this.viewedBuffer;
  14.    }
  15.  
  16.    public Cleaner cleaner() {
  17.       return null;
  18.    }
  19.  
  20.    DirectFloatBufferS(DirectBuffer var1, int var2, int var3, int var4, int var5, int var6) {
  21.       super(var2, var3, var4, var5);
  22.       this.address = var1.address() + (long)var6;
  23.       this.viewedBuffer = var1;
  24.    }
  25.  
  26.    public FloatBuffer slice() {
  27.       int var1 = this.position();
  28.       int var2 = this.limit();
  29.  
  30.       assert var1 <= var2;
  31.  
  32.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  33.       int var4 = var1 << 2;
  34.  
  35.       assert var4 >= 0;
  36.  
  37.       return new DirectFloatBufferS(this, -1, 0, var3, var3, var4);
  38.    }
  39.  
  40.    public FloatBuffer duplicate() {
  41.       return new DirectFloatBufferS(this, this.markValue(), this.position(), this.limit(), this.capacity(), 0);
  42.    }
  43.  
  44.    public FloatBuffer asReadOnlyBuffer() {
  45.       return new DirectFloatBufferRS(this, this.markValue(), this.position(), this.limit(), this.capacity(), 0);
  46.    }
  47.  
  48.    public long address() {
  49.       return this.address;
  50.    }
  51.  
  52.    // $FF: renamed from: ix (int) long
  53.    private long method_0(int var1) {
  54.       return this.address + (long)(var1 << 2);
  55.    }
  56.  
  57.    public float get() {
  58.       return Float.intBitsToFloat(Bits.swap(unsafe.getInt(this.method_0(this.nextGetIndex()))));
  59.    }
  60.  
  61.    public float get(int var1) {
  62.       return Float.intBitsToFloat(Bits.swap(unsafe.getInt(this.method_0(this.checkIndex(var1)))));
  63.    }
  64.  
  65.    public FloatBuffer get(float[] var1, int var2, int var3) {
  66.       if (var3 << 2 > 6) {
  67.          checkBounds(var2, var3, var1.length);
  68.          int var4 = this.position();
  69.          int var5 = this.limit();
  70.  
  71.          assert var4 <= var5;
  72.  
  73.          int var6 = var4 <= var5 ? var5 - var4 : 0;
  74.          if (var3 > var6) {
  75.             throw new BufferUnderflowException();
  76.          }
  77.  
  78.          if (this.order() != ByteOrder.nativeOrder()) {
  79.             Bits.copyToIntArray(this.method_0(var4), var1, (long)(var2 << 2), (long)(var3 << 2));
  80.          } else {
  81.             Bits.copyToByteArray(this.method_0(var4), var1, (long)(var2 << 2), (long)(var3 << 2));
  82.          }
  83.  
  84.          this.position(var4 + var3);
  85.       } else {
  86.          super.get(var1, var2, var3);
  87.       }
  88.  
  89.       return this;
  90.    }
  91.  
  92.    public FloatBuffer put(float var1) {
  93.       unsafe.putInt(this.method_0(this.nextPutIndex()), Bits.swap(Float.floatToRawIntBits(var1)));
  94.       return this;
  95.    }
  96.  
  97.    public FloatBuffer put(int var1, float var2) {
  98.       unsafe.putInt(this.method_0(this.checkIndex(var1)), Bits.swap(Float.floatToRawIntBits(var2)));
  99.       return this;
  100.    }
  101.  
  102.    public FloatBuffer put(FloatBuffer var1) {
  103.       if (var1 instanceof DirectFloatBufferS) {
  104.          if (var1 == this) {
  105.             throw new IllegalArgumentException();
  106.          }
  107.  
  108.          DirectFloatBufferS var2 = (DirectFloatBufferS)var1;
  109.          int var3 = var2.position();
  110.          int var4 = var2.limit();
  111.  
  112.          assert var3 <= var4;
  113.  
  114.          int var5 = var3 <= var4 ? var4 - var3 : 0;
  115.          int var6 = this.position();
  116.          int var7 = this.limit();
  117.  
  118.          assert var6 <= var7;
  119.  
  120.          int var8 = var6 <= var7 ? var7 - var6 : 0;
  121.          if (var5 > var8) {
  122.             throw new BufferOverflowException();
  123.          }
  124.  
  125.          unsafe.copyMemory(var2.method_0(var3), this.method_0(var6), (long)(var5 << 2));
  126.          var2.position(var3 + var5);
  127.          this.position(var6 + var5);
  128.       } else if (var1.hb != null) {
  129.          int var9 = var1.position();
  130.          int var10 = var1.limit();
  131.  
  132.          assert var9 <= var10;
  133.  
  134.          int var11 = var9 <= var10 ? var10 - var9 : 0;
  135.          this.put(var1.hb, var1.offset + var9, var11);
  136.          var1.position(var9 + var11);
  137.       } else {
  138.          super.put(var1);
  139.       }
  140.  
  141.       return this;
  142.    }
  143.  
  144.    public FloatBuffer put(float[] var1, int var2, int var3) {
  145.       if (var3 << 2 > 6) {
  146.          checkBounds(var2, var3, var1.length);
  147.          int var4 = this.position();
  148.          int var5 = this.limit();
  149.  
  150.          assert var4 <= var5;
  151.  
  152.          int var6 = var4 <= var5 ? var5 - var4 : 0;
  153.          if (var3 > var6) {
  154.             throw new BufferOverflowException();
  155.          }
  156.  
  157.          if (this.order() != ByteOrder.nativeOrder()) {
  158.             Bits.copyFromIntArray(var1, (long)(var2 << 2), this.method_0(var4), (long)(var3 << 2));
  159.          } else {
  160.             Bits.copyFromByteArray(var1, (long)(var2 << 2), this.method_0(var4), (long)(var3 << 2));
  161.          }
  162.  
  163.          this.position(var4 + var3);
  164.       } else {
  165.          super.put(var1, var2, var3);
  166.       }
  167.  
  168.       return this;
  169.    }
  170.  
  171.    public FloatBuffer compact() {
  172.       int var1 = this.position();
  173.       int var2 = this.limit();
  174.  
  175.       assert var1 <= var2;
  176.  
  177.       int var3 = var1 <= var2 ? var2 - var1 : 0;
  178.       unsafe.copyMemory(this.method_0(var1), this.method_0(0), (long)(var3 << 2));
  179.       this.position(var3);
  180.       this.limit(this.capacity());
  181.       return this;
  182.    }
  183.  
  184.    public boolean isDirect() {
  185.       return true;
  186.    }
  187.  
  188.    public boolean isReadOnly() {
  189.       return false;
  190.    }
  191.  
  192.    public ByteOrder order() {
  193.       return ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN;
  194.    }
  195. }
  196.